package com.cleaningcloud.cld.api.domain;


import com.cleaningcloud.common.core.annotation.Excel;
import com.cleaningcloud.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 人员花名册对象 cld_staff
 *
 * @author cleaningcloud
 * @date 2024-10-12
 */

@EqualsAndHashCode(callSuper = true)
@Data
public class CldStaff extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 员工ID
     */
    private Long staffId;

    // 头像
    private String avatar;
    /**
     * 员工编号
     */
    private String staffNo;

    /**
     * 员工姓名
     */
    @Excel(name = "姓名", sort = 1)
    private String staffName;

    /**
     * 员工性别
     */
    @Excel(name = "性别", sort = 2)
    private String staffSex;

    /**
     * 银行卡号
     */
    @Excel(name = "银行卡号", sort = 3)
    private String bankCard;

    /**
     * 手机号码
     */
    @Excel(name = "手机号码", sort = 4)
    private String staffPhone;

    // 登录密码
    private String staffPassword;

    /**
     * 身份证号码
     */
    @Excel(name = "身份证", sort = 5)
    private String staffIdcard;

    /**
     * 项目职别(字典表cld_staff_levels)
     */
    @Excel(name = "职别ID", sort = 6)
    private Long staffLevels;
    // 职别名称
    @Excel(name = "职别", sort = 7)
    private String jobName;
    /**
     * 紧急联系人
     */
    @Excel(name = "紧急联系人", sort = 8)
    private String urgentLinkman;

    /**
     * 紧急联系人手机号码
     */
    @Excel(name = "联系人手机号", sort = 9)
    private String urgentLinkmanPhone;

    /**
     * 家庭住址
     */
    @Excel(name = "家庭住址", sort = 10)
    private String staffAddress;

    /**
     * 介绍人(员工ID)
     */
    private Long recommenStaffId;

    // 介绍人手机号码
    private String referrerPhone;

    /**
     * 注册时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date registerTime;

    /**
     * 入职时间
     */
    @Excel(name = "入职时间", dateFormat = "yyyy-MM-dd HH:mm:ss", sort = 11)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date employmentTime;

    /**
     * 入岗时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date postTime;

    /**
     * 员工状态(0待入职1已入职2已在岗3已离职4黑名单)
     */
    private Integer staffStatus;

    /**
     * 银行卡正面图
     */
    private String imgBankPositive;

    /**
     * 银行卡反面图
     */
    private String imgBankOppsite;

    /**
     * 身份证正面图
     */
    private String imgIdcardPositive;

    /**
     * 身份证反面图
     */
    private String imgIdcardOppsite;

    /**
     * 离职确认时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date resignTime;

    /**
     * 离职申请时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date resignAppTime;

    /**
     * 离职原因
     */
    private String resignReason;

    /**
     * 离职申请表
     */
    private String resignTableImg;

    /**
     * 离职审批人ID
     */
    private Long resignApprovalId;

    /**
     * 离职审批状态(1待审核2已驳回3已通过)
     */
    private Long resignApprovalStatus;

    /**
     * 离职审批时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date resignApprovalTime;

    /**
     * 离职审批驳回原因
     */
    private String resignApprovalReason;

    /**
     * 入职审批人ID
     */
    private Long approvalId;

    /**
     * 入职审批时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date approvalTime;

    /**
     * 创建人ID
     */
    private Long createId;

    /**
     * 创建人名称
     */
    private String createName;

    /**
     * 备注是否关闭
     */
    private Long flag;

    /**
     * 员工合同ID
     */
    private Long staffContractId;

    /**
     * 合同照片
     */
    private String contractImg;

    /**
     * 协议照片
     */
    private String agreementImg;

    /**
     * 员工履历表
     */
    private String resumeImg;

    /**
     * 履历表打印状态(0未打印1已打印)
     */
    private Long resumePrintStatus;

    /**
     * 黑名单描述
     */
    private String blackReason;

    /**
     * 工服尺码
     */
    @Excel(name = "工服尺码", sort = 12)
    private String clothesSize;

    /**
     * 工鞋尺码
     */
    private String shoesSize;

    /**
     * 保险ID
     */
    private Long insuranceId;

    /**
     * 注册时项目id
     */
    private Long registerProjectId;

    /**
     * 是否在编
     */
    private Long isPrepared;

    /**
     * 微信openId
     */
    private String openId;
}
